import data.structure.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class test45_1_2 {
    /*给你二叉树的根节点 root ，返回其节点值的 层序遍历 。 （即逐层地，从左到右访问所有节点）。

示例 1：
输入：root = [3,9,20,null,null,15,7]
输出：[[3],[9,20],[15,7]]

示例 2：
输入：root = [1]
输出：[[1]]

示例 3：
输入：root = []
输出：[]

*/
    public static void main(String[] args) {
        TreeNode root = new TreeNode(3);
        root.left = new TreeNode(9);
        root.right = new TreeNode(20);
        root.right.left = new TreeNode(15);
        root.right.right = new TreeNode(7);
        levelOrder(root).forEach(System.out::println);
    }

    public static List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> list = new ArrayList<>();
        val(root,0,list);
        return list;
    }

    public static void val(TreeNode tree, int deep ,List<List<Integer>> list ) {
        if(tree == null)
            return;
        deep++;
        if(list.size()<deep){
            List<Integer> yz = new ArrayList<>();
            list.add(yz);
        }
        list.get(deep-1).add(tree.val);
        val(tree.left,deep,list);
        val(tree.right,deep,list);
    }

}









